Preliminary Freight Charges (PFC) API (1.0.4)

Download OpenAPI specification:

NMFTA Digital LTL Council: support@nmfta.org License: NMFTA License

The Preliminary Freight Charges (PFC) API proactively notifies responsible parties (debtors or their authorized agents, including consignees when designated as agents) that a motor carrier has created a freight bill for a shipment associated with that party. Further notifications occur when the bill is updated or removed from their account.

Key Features

  • Proactive freight charge visibility throughout shipment lifecycle
  • Real-time notifications via subscription-based push API
  • Standardized event codes and change log tracking
  • Unified API supporting both detailed data and change log consumption

Important Notes

  • PFC is not an invoice or legal document
  • PFC should not be construed as a request for payment
  • The PFC process concludes once the invoice is produced and no further updates are expected
  • Monitoring begins immediately upon onboarding, including any shipments currently in flight
  • Access is restricted to debtors and/or authorized agents only (including consignees when authorized)
  • Data options, notification frequency, and data retention may be limited by carrier capabilities, as defined in the NMFTA PFC PRD
  • Notifications are triggered by changes to shipment-level attributes that affect freight charges, including:
    • Changes to the Shipper, Consignee, or Bill-To party
    • Changes to the account number used for pricing
    • Modifications to payment terms
    • Addition or removal of accessorial charges (including waived $0 charges)
    • Shipment characteristic changes that affect rating
  • Customers may choose to process detailed data, change logs, or both, depending on implementation preference

Subscriptions

Manage PFC subscriptions

Subscribe to receive preliminary freight charge notifications

Creates a subscription to receive notifications for specified accounts, including in-flight shipments for new subscribers.

Request Body schema: application/json
required
webhookUrl
required
string <uri>

URL to receive notifications

accounts
required
Array of strings non-empty

List of account numbers to monitor. At least one account is required. Availability may be limited by carrier capabilities.

required
object (DataOptions)
frequency
string
Default: "real_time"
Enum: "real_time" "hourly" "daily"

Notification frequency preference. Options may be limited by carrier rating frequency.

includeEventLog
boolean
Default: true

Whether to include event change log

billScope
string
Default: "subscribed_accounts"
Enum: "all_accounts" "subscribed_accounts"

Scope of bills to include in notifications. 'all_accounts' refers to all accounts the user is authorized to access.

Responses

Request samples

Content type
application/json
{
  • "accounts": [
    ],
  • "dataOptions": {
    },
  • "frequency": "real_time",
  • "includeEventLog": true,
  • "billScope": "all_accounts"
}

Response samples

Content type
application/json
{
  • "accounts": [
    ],
  • "dataOptions": {
    },
  • "frequency": "real_time",
  • "includeEventLog": true,
  • "billScope": "all_accounts",
  • "subscriptionId": "sub_abc123",
  • "status": "active",
  • "createdAt": "2025-06-30T10:17:34.050Z",
  • "updatedAt": "2025-06-30T10:17:34.050Z"
}

Gets subscription details

Retrieves details of a specific subscription.

path Parameters
subscriptionId
required
string
Example: sub_abc123

Unique identifier for the subscription

Responses

Response samples

Content type
application/json
{
  • "accounts": [
    ],
  • "dataOptions": {
    },
  • "frequency": "real_time",
  • "includeEventLog": true,
  • "billScope": "all_accounts",
  • "subscriptionId": "sub_abc123",
  • "status": "active",
  • "createdAt": "2025-06-30T10:17:34.050Z",
  • "updatedAt": "2025-06-30T10:17:34.050Z"
}

Cancels subscription

Cancels an existing subscription.

path Parameters
subscriptionId
required
string
Example: sub_abc123

Unique identifier for the subscription

Responses

Response samples

Content type
application/json
{
  • "code": "UNAUTHORIZED",
  • "message": "Authentication credentials missing or invalid"
}

Gets in-flight shipments

Retrieves a list of in-flight shipments for a specific subscription, representing shipments in transit for subscribed accounts at the time of subscription creation. Returns an empty array if no in-flight shipments are found for the subscription.

path Parameters
subscriptionId
required
string
Example: sub_abc123

Unique identifier for the subscription

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Preliminary Freight Charges

Access freight charges information

Post to Subscription defined endpoint PFC information

Post to Subscription defined endpoint PFC information.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Webhooks

Webhook management and testing

Tests webhook endpoint

Tests webhook delivery for notifications.

Request Body schema: application/json
required
webhookUrl
string <uri>

Webhook URL to test

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "code": "INVALID_REQUEST",
  • "message": "Invalid request body or parameters",
  • "details": {
    }
}